package com.xnyzc.lhy.mis.entity.result.order;

import com.xnyzc.lhy.mis.entity.order.OaDOrderCharteredDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author zhaolijie
 * @date
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class OrderList {

    @ApiModelProperty(value = "主键")
    private String personalId;

    @ApiModelProperty(value = "订单编号")
    private String orderNo;

    @ApiModelProperty(value = "城市Code")
    private String cityId;

    @ApiModelProperty(value = "叫车类型")
    private String vehicleType;

    @ApiModelProperty(value = "包车天数")
    private Integer dayCount;

    @ApiModelProperty(value = "订单类型")
    private String orderType;

    @ApiModelProperty(value = "订单状态")
    private String orderStatus;

    @ApiModelProperty(value = "订单来源")
    private String orderChannel;

    @ApiModelProperty(value = "司机ID")
    private String driverId;

    @ApiModelProperty(value = "司机姓名")
    private String driverName;

    @ApiModelProperty(value = "司机手机号")
    private String driverPhone;

    @ApiModelProperty(value = "司机身份证")
    private String identityNumber;

    @ApiModelProperty(value = "车辆ID")
    private String vehicleId;

    @ApiModelProperty(value = "车牌号")
    private String vehNo;

    @ApiModelProperty(value = "乘客姓名")
    private String userName;

    @ApiModelProperty(value = "乘客手机号")
    private String userPhone;

    @ApiModelProperty(value = "流量方订单编号")
    private String didiOrderId;

    @ApiModelProperty(value = "乘客上车时间")
    private String orderTime;

    @ApiModelProperty(value = "下单时间")
    private String createTime;

    @ApiModelProperty(value = "取消原因")
    private String cancelReason;

    @ApiModelProperty(value = "确认上车时间")
    private String notarizeTime;

    @ApiModelProperty(value = "去接乘客时间")
    private String meetPassengerTime;

    @ApiModelProperty(value = "等待乘客上车时间")
    private String arriveMeetPassengerTime;

    @ApiModelProperty(value = "到达时间")
    private String arriveTime;

    @ApiModelProperty(value = "发起收款时间")
    private String initiateCollectionTime;

    @ApiModelProperty(value = "乘客付款时间")
    private String passengerPayTime;

    @ApiModelProperty(value = "订单取消时间")
    private String cancelOrderTime;

    @ApiModelProperty(value = "实付金额")
    private String actualFee;

    @ApiModelProperty(value = "总金额")
    private String totalFee;

    @ApiModelProperty(value = "起步价")
    private BigDecimal startFee;

    @ApiModelProperty(value = "远途费")
    private BigDecimal distanceFee;

    @ApiModelProperty(value = "时长费")
    private BigDecimal durationFee;

    @ApiModelProperty(value = "费用金额")
    private BigDecimal costAmount;

    @ApiModelProperty(value = "工单总金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "行程费用")
    private BigDecimal travelCost = BigDecimal.valueOf(0);

    @ApiModelProperty(value = "附加费用")
    private BigDecimal additionalCost = BigDecimal.valueOf(0);

    @ApiModelProperty(value = "里程费")
    private BigDecimal mileageFee;

    @ApiModelProperty(value = "供应商Id")
    private Long officeId;

    @ApiModelProperty(value = "供应商名称")
    private String officeName;

    @ApiModelProperty(value = "预约时间")
    private Date appointment;

    @ApiModelProperty(value = "预估里程")
    private String travelMileage;

    @ApiModelProperty(value = "预估时长")
    private String travelTimeStr;

    @ApiModelProperty(value = "订单类型文字")
    private String orderTypeStr = "实时";

    @ApiModelProperty(value = "订单状态文字")
    private String orderStatusStr;

    @ApiModelProperty(value = "叫车类型文字")
    private String vehicleTypeStr;

    @ApiModelProperty(value = "取消原因文字")
    private String cancelReasonStr;

    @ApiModelProperty(value = "订单渠道文字")
    private String orderChannelStr = "滴滴";

    @ApiModelProperty(value = "城市文字")
    private String cityStr;

    @ApiModelProperty(value = "乘客备注")
    private String expand2;

    @ApiModelProperty(value = "每页显示的数据量-前台传递")
    private Integer pageSize;

    @ApiModelProperty(value = "查询的页号-前台传递")
    private Integer page;

    @ApiModelProperty(value = "乘客姓名-前台传递")
    private String passengerName;

    @ApiModelProperty(value = "乘客手机号-前台传递")
    private String passengerPhone;

    @ApiModelProperty(value = "是否改价-前台传递")
    private String isChangePrice;

    @ApiModelProperty(value = "订单起点-前台传递")
    private String startAddress;

    @ApiModelProperty(value = "订单终点-前台传递")
    private String endAddress;

    @ApiModelProperty(value = "有无退款-前台传递")
    private String isRefund;

    @ApiModelProperty(value = "运力类型-前台传递")
    private String businessType;

    @ApiModelProperty(value = "开始时间-前台传递")
    private Date orderStartTime;

    @ApiModelProperty(value = "结束时间-前台传递")
    private Date orderEndTime;

    @ApiModelProperty(value = "航班号，接机单必填")
    private String flightNo;

    @ApiModelProperty(value = "最晚确认司机时间")
    private String lastPushDriverTime;

    @ApiModelProperty(value = "去接乘客时间")
    private String meetCTime;

    @ApiModelProperty(value = "司机已就位时间")
    private String driverInPlaceTime;

    @ApiModelProperty(value = "开始行程时间")
    private String startJourneyTime;

    @ApiModelProperty(value = "结束行程时间")
    private String endJourneyTime;

    @ApiModelProperty(value = "预约时间")
    private String appointmentTime;

    @ApiModelProperty(value = "里程数（总距离）")
    private String milageDistance;

    @ApiModelProperty(value="乘车时长")
    private String durationTime;

    @ApiModelProperty(value = "车队")
    private String vehicleTeam;

    private List<Date> timeList;

    @ApiModelProperty(value = "车辆ID集合")
    private List<String> vehicleIds;

    @ApiModelProperty(value = "司机ID集合")
    private List<String> dirverIds;

    @ApiModelProperty(value = "是否查询待接收订单")
    private Boolean acceptOrder = Boolean.FALSE;

    @ApiModelProperty(value = "包车是否匹配运力")
    private Boolean hasDriver = Boolean.FALSE;

    @ApiModelProperty(value = "司机ID集合")
    private List<Long> driverIds;

    @ApiModelProperty(value = "订单异常状态：1.套餐外金额不匹配")
    private Integer errorStatus;

    @ApiModelProperty(value = "携程通知额外费用")
    private BigDecimal additionalFee;

    @ApiModelProperty(value = "额外抽成总费用")
    private BigDecimal cutExceedFee;

    @ApiModelProperty(value = "额外不抽成总费用")
    private BigDecimal sumOther;

    @ApiModelProperty(value = "额外总费用")
    private BigDecimal sumExceed;

    @ApiModelProperty(value = "包车订单每日详情")
    private List<OaDOrderCharteredDetail> orderCharteredDetails;

    @ApiModelProperty(value = "甩单标识")
    private Integer throwFlag;

}
